const {loginUser, addUser} = require('../service/user')
const path = require("path");

class UserController {
    async login(ctx, next) {
        const {username, password} = ctx.request.body;
        const result = await loginUser(username, password)
        ctx.body = result
    }

    async add(ctx, next) {
        try {
            const {username, password} = ctx.request.body;
            console.log("=>(user.js:12) username", username);
            const result = await addUser(username, password);
            console.log("=>(user.js:14) result", result);
                ctx.body = {
                    code: 200,
                    message: '添加用户成功',
                    data: result
                };

        } catch (e) {
            console.log("=>(user.js:22) e", e);
        }
    }

    async upload(ctx, next) {
        // 如果文件类型不是 jpg 则抛出异常
        // 注意！！！这种情况下还是可以上传不合法的文件！可行的方法是在 koaBody.formidable 中添加过滤器
        // 但是在 koaBody.formidable 中处理 又需要我们手动写一个中间件处理异常
        if (ctx.request.files.file.mimetype !== 'image/jpeg') {
            // koa 内部异常事件 手动抛出异常
            ctx.app.emit('error', {massage: '只支持 jpg 文件'}, ctx);
            ctx.body = {
                code: 400,
                message: '只支持 jpg 文件'
            }
        } else {
            ctx.body = {
                code: 200,
                message: '上传成功',
                data: {
                    // koa-body 将上传的文件信息保存在 ctx.request.files 中 file 指的是前端传输的 file(该字段名字和前端统一) 属性
                    // fileInfo: ctx.request.files.file
                    fileUrl: path.basename(ctx.request.files.file.filepath)
                }
            }
        }
    }
}

module.exports = new UserController()
